This invention relates to cache control in an I/O process using cache areas provided in a server and a storage system.
In recent years, applications of non-volatile memories, such as a flash memory, to a server and a shared storage have been in progress. Along with such tendency, Storage Networking Industry Association (SNIA), which is an industry group that aims at developing storage networking, has proposed an I/O stack for non-volatile memories called non-volatile memory express (NVMe), which uses a PCI Express (hereinafter “PCIe”) interface designed by the PCI-SIG.
The NVMe is an I/O stack that reduces the load of a CPU on an I/O process in order to utilize the high-speed performance of a non-volatile memory as compared to an existing I/O stack. The use of the NVMe can therefore increase the speed of applications whose bottleneck is the load of a CPU. It is assumed that the application, the non-volatile memory mounted in a server, and the storage system are compliant with NVMe in future, leading to utilization of the NVMe.
In recent years, it has become popular to use a non-volatile memory mounted in a server as a cache for a shared storage system. See, for example, JP 2012-78939 A.
JP 2012-78939 A discloses the configuration that uses a flash memory as a cache for an HDD. According to this configuration, an existing I/O stack is used between an application and the non-volatile memory in the server as well as between the application and the storage.
In view of the above, it is conceivable that a system handling an NVMe-compliant non-volatile memory as a cache is necessary for a system having an NVMe-compliant application and an NVMe-compliant storage system in future. In other words, it is conceivable that a system in which an I/O stack between an application and a non-volatile memory and an I/O stack between an application and a storage are both compliant with NVMe emerge in future.